_Pragma("once")
#ifndef CREATETASK_H
#define CREATETASK_H

#include <QWidget>
#include <QSqlQuery>
#include "ndb.h"
#include "taskitem.h"
#include "addsubtaskw.h"
#include <QMessageBox>

namespace Ui {
class CreateTask;
}

class CreateTask : public QWidget
{
    Q_OBJECT
public:
    QPixmap m_pix_add;
    QPixmap m_pix_delete;
    enum {ID, NAME, TOMATO, ADD, DELETE};
    bool m_hasSubTask;    // 存在子任务
    int m_taskId;
    enum model {CREATE, EDIT};
    model m_model;

    // 更新
    int m_tomatoAchieveTotal=0;
    int m_tomatoAchieveToday=0;
public:
    explicit CreateTask(int taskId=-1,QWidget *parent = nullptr);
    ~CreateTask();

    void initSubTaskTable();

    void addSubTask(int row);

    bool checkSubTaskExist(subTask &subtask);

    void taskTomatoEditDisable(bool flag);

    void updateTaskTomato();

    void fillContent(const taskItem &task);

    void loadSubTasks(int newRow, const subTask &subtask);

private slots:
    void on_createButton_clicked();

    void on_pushButton_clicked();

    void addSubTaskFromW(int row, subTask subtask);

    void on_isEveryDay_stateChanged(int arg1);

private:
    Ui::CreateTask *ui;

    int m_subtask_tmp_id=-1;
signals:
    void TableAddTask(taskItem &task);
    void TableUpdateTask(taskItem &task);
};

#endif // CREATETASK_H
